import java.util.Arrays;

public class SolutionInterview1_7 {

    public void rotate(int[][] matrix) {
        int n=matrix.length;
        for (int i=0;i<n/2;i++){
            int[] f=new int[n-i*2-1];
            for (int j=i+1;j<n-i;j++){
                f[j-i-1]=matrix[i][j];
            }
            for (int j=i;j<n-i-1;j++){
                matrix[i][n-j-1]=matrix[j][i];
            }
            for (int j=i;j<n-i-1;j++){
                matrix[j][i]=matrix[n-i-1][j];
            }
            for (int j=i+1;j<=n-i-1;j++){
                matrix[n-i-1][n-j-1]=matrix[j][n-i-1];
            }
            for (int j=i+1;j<=n-i-1;j++){
                matrix[j][n-i-1]=f[j-i-1];
            }
        }
    }

    public static void main(String[] args) {
        int[][] m=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
        new SolutionInterview1_7().rotate(m);
        for (int[] ints : m) {
            System.out.println(Arrays.toString(ints));
        }
    }
}
